package com.service;

import com.entity.*;

import java.util.List;
import java.util.Map;

public interface ProducedService {
    //  查询所有的生产单
    PageBean<ProductionOrder> findAll(int pageIndex, int pageSize, ProductionOrder productionOrder);
    //  查询全部生产部门
    public List<Department> findAllDept();
    //  创建生产单
    void add(ProductionOrder productionOrder);
    //  修改生产单
    void modify(ProductionOrder productionOrder);
    //  删除生产单
    void delete(ProductionOrder productionOrder);
    //  批量删除生产单
    void deleteBatch(int[] ids);


    //  查询所有的生产领料
    PageBean<ProductionReceive> findAllReceive(int pageIndex, int pageSize, ProductionReceive productionReceive);
    //  添加生产领料
    void addReceive(ProductionReceive productionReceive);
    //  修改生产领料
    void modifyReceive(ProductionReceive productionReceive);
    //  删除生产领料
    void deleteM(ProductionReceive productionReceive);
    //  批量删除生产单
    void deleteBatchM(int[] ids);

    //  获取所有开始生产状况
    PageBean<ProductionProduced> findAllProduced(int pageIndex, int pageSize,ProductionProduced productionProduced);
    //  查询全部产品
    List<ProductionGoods> findAllGoods();
    //  查询全部原料
    List<ProductionRaws> findAllRaws();
    //  不同产品使用不同原料
    List<String> findRawsByGoods(int id);
    //  查询所有未生产单
    List<ProductionOrder> findAllPoids();
    //  根据生产单获取产品及原料
    Map<String, List<String>> findGoodsRawsByOrder(int id);
    //  根据id查询生产单
    ProductionOrder findOrderById(int id);
    //  查询全部生产员工
    List<ProductionEmployee> findAllEmployees();
    //  根据名字查询员工id
    List<ProductionEmployee> findEmployeeByName(String name);
    //  开始生产
    void addProduced(ProductionProduced productionProduced);
    void modifyPstate(ProductionProduced productionProduced);
    //  删除生产情况
    void deleteProduced(ProductionProduced productionProduced);
    //  删除生产情况
    void deleteBatchProduced(int[] ids);
    //  通过id获取生产情况
    List<ProductionProduced> findProducedById(int id);
    //  修改生产状态
    void modifyProduced(ProductionProduced productionProduced);
    //  结束生产
    void overProduced(ProductionProduced productionProduced);
    //  获取所有完成生产的情况
    PageBean<ProductionProduced> findAllProducedOver(int pageIndex, int pageSize,ProductionProduced productionProduced);
    //  获取所有仓储情况
    List<ProductionStore> findAllProducedStore();
    //  修改仓储数量
    void modifyStore(ProductionStore productionStore);
    //  物品入库
    void addStore(ProductionStore productionStore);
}
